import http from '@src/util/http';

const prefix = '/api/project/outside/project';
/**
 * 获取项目类型列表
 * @param params
 * @returns
 */
export function projectTypeList(params: {}) {
  return http.get(`${prefix}/type/list`, params);
}

/**
 * 项目类型新建
 * @param params
 * @returns
 */
export function projectTypeCreate(params: {}) {
  return http.post(`${prefix}/type/create`, params);
}

/**
 * 项目类型更新状态
 * @param params
 * @returns
 */
export function projectTypeUpdateStatus(params: {}) {
  // false form-data
  return http.post(`${prefix}/type/updateStatus`, params, false);
}

/**
 * 项目类型排序
 * @param params
 * @returns
 */
export function projectTypeUpdateOrder(params: {}) {
  return http.post(`${prefix}/type/updateOrder`, params);
}

/**
 * 系统设置项目类型删除
 * @param params
 * @returns
 */
export function projectTypeDelete(params: {}) {
  return http.post(`${prefix}/type/delete`, params);
}

/**
 * 任务类型列表
 * @param params
 * @returns
 */
export function projectTaskList() {
  return http.get(`${prefix}/task/type/list`);
}

/**
 * 任务类型新建
 * @param params
 * @returns
 */
export function projectTaskCreate(params: {}) {
  return http.post(`${prefix}/task/type/create`, params);
}

/**
 * 任务类型更新状态
 * @param params
 * @returns
 */
export function projectTaskUpdateStatus(params: {}) {
  // false form-data
  return http.post(`${prefix}/task/type/updateStatus`, params, false);
}

/**
 * 任务类型排序
 * @param params
 * @returns
 */
export function projectTaskUpdateOrder(params: {}) {
  return http.post(`${prefix}/task/type/updateOrder`, params);
}

/**
 * 任务类型删除
 * @param params
 * @returns
 */
export function projectTaskDelete(params: {}) {
  return http.post(`${prefix}/task/type/delete`, params);
}

/**
 * 项目类型表单字段
 * @param params
 */
export function getProjectTypeField(params: {}) {
  return http.post(`/api/project/outside/field/list`, params);
}

/**
 * 表单保存
 */
export function saveProjectTypeField(params: {}) {
  return http.post(`/api/project/outside/field/save`, params);
}

/**
 * 获取类型名称&颜色
 */
export function getProjectTypeName(params: {}) {
  return http.post(`${prefix}/type/detail`, params);
}

/**
 * 获取工作日志配置
 */
export function getWorkRecord(params: {}) {
  return http.get(`${prefix}/config/workRecord`, params);
}

/**
 * 更新工作日志配置
 */
export function updateWorkRecord(params: {}) {
  return http.post(`${prefix}/config/workRecord/update`, params);
}

/**
 * 新建保存项目
 */
export function saveProjectType(params: {}) {
  return http.post(`${prefix}/save`, params);
}

/**
 * 项目状态列表  
 * @returns {*} projectTypeId 项目类型id
 */
export function getStatusList(params = {}) {
  return http.post(`${prefix}/config/status/list`,params);
}


/**
 * 更新状态
 * @returns {*} id 主键id
 * @returns {*} projectTypeId 项目类型id
 * @returns {*} projectStatusName 名称
 * @returns {*} projectStatusDesc 描述
 * @returns {*} orderNumber 序号
 * @returns {*} statusColor 颜色
 * 
 */
export function statusUpdate(params = {}) {
  return http.post(`${prefix}/config/status/update`,params);
}


/**
 * 新增状态
 * @returns {*} projectTypeId 项目类型id
 * @returns {*} projectStatusName 名称
 * @returns {*} projectStatusDesc 描述
 * @returns {*} orderNumber 序号
 * @returns {*} statusColor 颜色
 * 
 */
export function statusAdd(params = {}) {
  return http.post(`${prefix}/config/status/add`,params);
}

/**
 * 删除状态之前的校验
 * @returns {*} projectTypeId 项目类型id
 * @returns {*} projectStatusId 主键id
 * 
 */
export function statusDelCheck(params = {}) {
  return http.post(`${prefix}/config/status/deleteCheck`,params);
}

/**
 * 删除状态
 * @returns {*} projectTypeId 项目类型id
 * @returns {*} id 主键id
 * 
 */
export function statusDel(params = {}) {
  return http.post(`${prefix}/config/status/delete`,params);
}


export function statusSwap(params = {}) {
  return http.post(`${prefix}/config/status/updateOrder`,params);
}

// 获取操作按钮权限列表接口
export function authList(params = {}) {
  return http.get(`${prefix}/auth/list`, params);
}

// 获取角色权限列表接口
export function roleDataList(params = {}) {
  return http.get(`${prefix}/auth/role/list`, params);
}

// 查看角色详情
export function roleDetail(params = {}) {
  return http.get(`${prefix}/auth/role/detail`, params);
}

// 更新角色接口
export function roleUpdate(params = {}) {
  return http.post(`${prefix}/auth/role/update`, params);
}

// 新增角色接口
export function roleAdd(params = {}) {
  return http.post(`${prefix}/auth/role/add`, params);
}

// 删除角色接口
export function roleDelete(params = {}) {
  return http.post(`${prefix}/auth/role/delete`, params, false);
}


//  任务列表
export function taskList(params = {}) {
  return http.post(`${prefix}/config/task/list`, params);
}

// 查询可配置前置任务
export function queryPreTaskList(params = {}) {
  return http.post(`${prefix}/config/task/queryPreTaskList`, params);
}

// 新增任务
export function taskAdd(params = {}) {
  return http.post(`${prefix}/config/task/add`, params);
}

// 更新任务
export function taskUpdate(params = {}) {
  return http.post(`${prefix}/config/task/update`, params);
}


// 删除任务
export function taskDelete(params = {}) {
  return http.post(`${prefix}/config/task/delete`, params);
}

// 任务类型
export function queryTaskType(params = {}) {
  return http.post(`${prefix}/config/task/queryAvailableTaskType`, params);
}

// 获取任务规则
export function taskRuleDetail(params = {}) {
  return http.post(`${prefix}/config/task/ruleDetail`, params);
}


// 更新任务规则
export function updateRule(params = {}) {
  return http.post(`${prefix}/config/task/updateRule`, params);
}


// 拖拽排序之前校验
export function taskSwapCheck(params = {}) {
  return http.post(`${prefix}/config/task/swapCheck`, params);
}


// 拖拽排序
export function taskSwap(params = {}) {
  return http.post(`${prefix}/config/task/updateOrder`, params);
}

// 获取任务规则
export function taskDetail(params = {}) {
  return http.post(`${prefix}/config/task/detail`, params);
}

// 工作流列表
export function processList(params = {}) {
  return http.post(`${prefix}/config/process/list`, params);
}


// 添加工作流
export function processAdd(params = {}) {
  return http.post(`${prefix}/config/process/add`, params);
}

// 更新工作流
export function processUpdate(params = {}) {
  return http.post(`${prefix}/config/process/update`, params);
}

// 删除工作流
export function processDelete(params = {}) {
  return http.post(`${prefix}/config/process/delete`, params);
}


// 查询所有的任务类型
export function queryAllTaskType(params: {}) {
  return http.post(`${prefix}/config/task/queryAllTaskType`, params);
}

// 保存可用任务类型设置
export function saveTaskTypeConfig(params: {}) {
  return http.post(`${prefix}/config/user/save`, params);
}

// 查询配置
export function queryDetail(params: {}) {
  return http.post(`${prefix}/config/user/query`, params);
}


// 编辑任务提交之前判断当前任务是否已经新建了规则

export function editTaskCheck(params: {}) {
  return http.post(`${prefix}/config/task/detail`, params);
}


// 任务弹窗详情
export function taskItemDetail(params: {}) {
  return http.post(`${prefix}/config/task/detail`, params);
}

// 获取流程详情
export function processDetail(params: {}) {
  return http.post(`${prefix}/config/process/detail`, params);
}

// 获取状态详情
export function statusDetail(params: {}) {
  return http.post(`${prefix}/config/status/detail`, params);
}



/**
 * 编辑保存项目
 */
export function updateProjectType(params: {}) {
  return http.post(`${prefix}/update`, params);
}

/**
 * 项目详情
 */
export function projectTypeDetail(params: {}) {
  return http.get(`${prefix}/detail/${params.id}`);
}

/**
 * 取消项目
 */
export function projectTypeCancel(params: {}) {
  return http.get(`${prefix}/cancel/${params.id}`);
}

/**
 * 工作日志列表
 */
export function workRecordList(params: {}) {
  return http.post(`${prefix}/work/record/list`, params);
}

/**
 * 工作日志新建
 */
export function workRecordCreate(params: {}) {
  return http.post(`${prefix}/work/record/create`, params);
}

/**
 * 工作日志更新
 */
export function workRecordUpdate(params: {}) {
  return http.post(`${prefix}/work/record/update`, params);
}

/**
 * 工作日志删除
 */
export function workRecordDelete(params: {}) {
  return http.post(`${prefix}/work/record/delete`, params, false);
}

// 获取角色用户列表
export function projectTypeRoleList(params: {}) {
  return http.get(`${prefix}/auth/role/user/list`, params);
}

// 添加角色用户
export function projectTypeAddRole(params = {}) {
  return http.post(`${prefix}/auth/role/user/add`, params);
}

// 获取按钮权限
export function projectTypeRoleBtn(params: {}) {
  return http.get(`${prefix}/auth/button`, params);
}

// 删除项目 项目列表&项目详情
export function projectTypePageDelete(params = {}) {
  return http.post(`${prefix}/delete`, params);
}

// 项目&任务动态信息
export function projectRecordList(params: {}) {
  return http.post(`${prefix}/record/list`, params);
}

// 进度管理列表
export function projectProcessSimpleList(params: {}) {
  return http.post(`${prefix}/task/simpleList`, params)
}

// 统计看板
export function projectStatisticData(params: {}) {
  return http.get(`${prefix}/statistic/data`, params);
}

// 获取项目扭转的下一个节点
export function projectStatusNextNode(params: {}) {
  return http.post(`${prefix}/config/status/nextNode`, params)
}

// 更新权重
export function projectUpdateWight(params: {}) {
  return http.post(`${prefix}/task/updateWight`, params)
}
/**
 * 项目列表
 * @param params
 */
export function getProjectTableList(params: {}) {
  return http.post(`/api/elasticsearch/outside/es/project/list`, params);
}

/**
 * 项目卡片列表
 * @param params
 */
export function getProjectCardList(params: {}) {
  return http.post(`/api/elasticsearch/outside/es/project/status/list`, params);
}

/**
 * 项目列表
 * @param params
 */
export function getProjectTimeLineList(params: {}) {
  return http.post(`/api/elasticsearch/outside/es/project/timeLine/list`, params);
}

/**
 * 查询项目列表数据状态列表
 * @param params
 */
export function getStatusStatisticList(params: {}) {
  return http.post(`/api/elasticsearch/outside/es/project/status/statistic/list`, params);
}

// 获取项目甘特图
export function projectTaskGantt(params: {}) {
  return http.post(`${prefix}/task/simpleList`, params)
}


// 获取项目详情任务列表接口
export function projectTaskDetail(params: {}) {
  return http.post(`${prefix}/task/list`, params);
}


// 获取项目详情通用任务表单的字段
export function taskFieldList(params: {}) {
  return http.post(`/api/project/outside/field/list`, params);
}

// 获取项目详情通用任务表单的字段
export function taskDeletePro(params: {}) {
  return http.post(`${prefix}/task/delete`, params);
}

// 保存项目详情内的新建任务
export function addTaskAndCommonTask(params: {}) {
  return http.post(`${prefix}/task/addTaskAndCommonTask`, params);
}

// 项目详情里面的新建任务前置列表任务接口
export function queryPreTaskListPro(params: {}) {
  return http.post(`${prefix}/task/queryPreTaskList`, params);
}

// 流转状态更新
export function projectUpdateFlow(params: {}) {
  return http.post(`${prefix}/updateFlow`, params)
}
// 项目详情编辑任务的保存接口
export function updateTaskAndCommonTask(params: {}) {
  return http.post(`${prefix}/task/updateTaskAndCommonTask`, params);
}

// 项目详情任务是草稿状态，提交保存的接口
export function updateTaskAndAddCommonTask(params: {}) {
  return http.post(`${prefix}/task/updateTaskAndAddCommonTask`, params);
}

/**
 * 任务管理统计状态数据
 * @param params 
 */
 export function getTaskManageStateStatus(params = {}) {
  return http.post(`${prefix}/task/stateStatus`, params)
}

/**
 * 任务管理列表表头数据
 * @param params 
 */
export function getTaskManageFields() {
  return http.post(`${prefix}/task/init`)
}

/**
 * 任务管理列表数据
 * @param params 
 */
export function getTaskManageList(params: {}) {
  return http.post(`/api/elasticsearch/outside/es/project/task/list`, params)
}

/**
 * 任务管理删除数据
 * @param params 
 */
 export function taskManageDelete(params: {}) {
  return http.post(`${prefix}/task/delete`, params)
}

/**
 * 任务管理详情更新进度
 * @param params 
 */
 export function updateTaskManageProgress(params: {}) {
  return http.post(`${prefix}/task/updateProgress`, params)
}

/**
 * 动态信息
 * @param params 
 */
 export function getTaskManageRecord(params: {}) {
  return http.post(`${prefix}/record/list`, params)
}

// 获取任务详情
export function taskDetailPro(params: {}) {
  return http.post(`${prefix}/task/detail`, params);
}

//  获取任务表单的详情
export function comTaskDetailPro(params: {}) {
  return http.post(`${prefix}/commonTask/detail`, params);
}


// 匹配任务设置规则的表单字段 回填
export function insertSelectCallByAdditionalId(params: {}) {
  return http.post(`/api/application/outside/call/insertSelectCallByAdditionalId`, params);
}


/**
 * 动态信息
 * @param params.projectId
 * @param params.id
 */
export function cancelTaskManage(params: {}) {
  return http.post(`${prefix}/task/cancel`, params);
}

// 高级设置附加组件列表
export function getAllCardList(params: {}) {
  return http.post(`${prefix}/type/cardList`, params);
}

// 高级设置附加组件删除
export function deleteCard(params: {}) {
  return http.post(`${prefix}/type/deleteCard`, params);
}

/**
 * 获取项目详情人员管理成员
 */
export function getMemberList(params: {}) {
  return http.get(`${prefix}/member/list`, params);
}

/**
 * 添加项目成员
 * @param params 
 * @returns 
 */
export function getMemberAdd(params: {}) {
  return http.post(`${prefix}/member/add`, params);
}

/**
 * 移除项目成员
 * @param params 
 * @returns 
 */
export function getMemberRemove(params: {}) {
  return http.post(`${prefix}/member/remove`, params);
}

/**
 * 获取负责人
 * @param params 
 * @returns 
 */
export function getCheckTaskManger(params: {}) {
  return http.post(`${prefix}/member/checkTaskManger`, params);
}


/**
 * 按项目组 选人组件查询
 * @param params 
 * @returns 
 */
export function getSearchUserList(params: {}) {
  return http.post(`${prefix}/select/getUserList`, params);
}

/**
 * 选人组件查询 查询更多
 * @param params 
 * @returns 
 */
export function getSearchMoreUserList(params: {}) {
  return http.post(`${prefix}/select/getUserFromMore`, params)
}

/**
 * @description 获取选人控件项目组列表
 */
export function getSelectProjectTeamList(params: {}) {
  return http.post(`${prefix}/role/list`, params)
}


/**
 * @description 创建工单类型的任务
 */
export function taskAddTask(params: {}) {
  return http.post(`${prefix}/task/addTask`, params)
}

/**
 * @description 更新工单类型的任务
 */
export function taskEditTask(params: {}) {
  return http.post(`${prefix}/task/updateTask`, params)
}


/**
 * @description 草稿状态为工单类型的，提交的时候跳转下一步工单之前判断是否有新建工单权限
 */
export function isCanEditWorkOrder(params: {}) {
  return http.post(`${prefix}/config/task/commitCheck`, params)
}


/**
 * @description 校验任务名称是否重复和数量是否超过限制
 */
export function checkNameAndSize(params: {}) {
  return http.post(`${prefix}/task/checkNameAndSize`, params)
}

/**
 * @description 新建工单类型的任务 提交之前校验前置任务是否完成
 */
export function checkPreTaskIsComplete(params: {}) {
  return http.post(`${prefix}/task/checkPreTaskIsComplete`, params)
}




/**
 * @description 消息设置新建规则
 */
export function addMessageRule(params: {}) {
  return http.post(`${prefix}/messageRule/addMessageRule`, params)
}


/**
 * @description 消息设置编辑规则
 */
export function updateMessageRule(params: {}) {
  return http.post(`${prefix}/messageRule/updateMessageRule`, params)
}

/**
 * @description 消息设置项目类型消息列表
 */
export function messageRuleList(params: {}) {
  return http.post(`${prefix}/messageRule/messageRuleList`, params)
}

/**
 * @description 删除规则
 */
export function deleteMessageRule(params: {}) {
  return http.post(`${prefix}/messageRule/deleteMessageRule`, params)
}

/**
 * @description 内部/外部消息开关
 */
export function switchMessageRule(params: {}) {
  return http.post(`${prefix}/messageRule/switchMessageRule`, params)
}


/**
 * @description 获取任务规则的详情
 */
export function messageRuleDetail(params: {}) {
  return http.post(`${prefix}/messageRule/messageRuleDetail`, params)
}



/**
 * @description 查询或新建项目流转审批信息
 */
export function approveSetting(params: {}) {
  return http.post(`${prefix}/approve/setting`, params)
}


/**
 * @description 检测项目流转需要审批
 */
export function approveCheck(params: {}) {
  return http.post(`/api/app/outside/advance/approve/check`, params)
}


/**
 * @description 项目发起流转审批
 */
export function approveApply(params: {}) {
  return http.post(`/api/app/outside/advance/approve/apply`, params)
}

/**
 * @description 获取项目流转审批详情
 */
export function approveDetail(params: {}) {
  return http.post(`/api/app/outside/advance/approve/detail`, params)
}

/**
 * @description 提交审批结果
 */
export function approveSubmit(params: {}) {
  return http.post(`/api/app/outside/advance/approve/submit`, params)
}


/**
 * @description 撤回审批
 */
export function approveCancel(params: {}) {
  return http.post(`/api/app/outside/advance/approve/cancel`, params)
}


export function getProjectExportFieldList (params){
  return  http.post(`/api/project/outside/project/getExportInfo`, params)
}

/**
 * 超级二维码中获取项目任务系统字段
 */
export function getSuperCodeGetProjectOrTaskField(params: {}) {
  return http.get('/api/project/outside/field/superCodeGetProjectOrTaskField', params);
}

/**
 * 跳转paas获取一些paas信息
 */
export function getNodeInstanceRelation(params: {}) {
  return http.get('/api/paas/outside/pc/template/getNodeInstanceRelation', params);
}
/**
 * 获取项目管理满意度回访设置
 */
export function getProjectAutoReview(params: {}) {
  return http.get('/api/project/outside/project/config/autoReview', params);
}

/**
 * 更新项目管理满意度回访设置
 */
export function updateProjectAutoReview(params: {}) {
  return http.post('/api/project/outside/project/config/autoReview/update', params);
}



